home *** CD-ROM | disk | FTP | other *** search
- Welcome to FIPS
- The First nondestructive Interactive Partition Splitting program
-
- Version 1.0
- may 3, 1994
-
- Copyright 1993/94 by Arno Schaefer
-
-
- 0. What you need to use FIPS
- 1. Introduction
- 2. Safety
- 3. Restrictions
- 4. Before you start
- 5. Use with Stacker/SuperStor/Doublespace
- 6. Use with OS/2
- 7. Use with a multitasking OS
- 8. Using FIPS
- 9. After splitting the partition
- 10. Commandline Switches
- 11. Troubleshooting
- 12. Credits
-
-
- FIPS is a program designed to split an existing DOS partition without deleting
- the data on it.
-
- FIPS is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- FIPS is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with FIPS; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Report problems and direct all questions to:
-
- schaefer@rbg.informatik.th-darmstadt.de
-
-
- 0. What you need to use FIPS
-
- You need a defragmentation program in order to move all data to the beginning
- of the hard disk. FIPS will only split your partition if you have enough free
- space at the end. DOS 6.0 and later contains DEFRAG, which is suitable for
- this purpose. Other suitable programs are Norton Speedisk (actually DEFRAG
- is speedisk with less functions, licensed from Norton), PCTools' Compress,
- DISKOPT in Novell DOS 7, or the shareware programs ORG, DOG or SAFPAK
- (available by anonymous FTP from any SIMTEL mirror in the diskutil directory).
- I did not test these however, so don't blame me if they don't work for you.
-
- You may also want to use a program like Norton Disk Doctor (or 'scandisk'
- in DOS 6.2) to check your harddisk before and after using FIPS.
-
- FIPS was developed under DOS 5.0. It should work fine with anything above
- 3.0, perhaps even with 2.0. However it will not be of much use with older
- DOS versions, since the large partition sizes are only available since DOS 4.
- It has been reported to work with DOS 6.0 and 6.2 and it seems to work
- with Novell DOS 7.
-
-
- 1. Introduction
-
- The program was inspired by the Linux Project. When installing Linux on a
- PC that was used for DOS / Windows, many people want to retain a smaller
- partition for their DOS software. However, since most Harddisks contain
- only one large partition, you would normally be required to do a complete
- backup, erase the partition and build two (or more) new partitions. Then you
- would restore the backup to one of the new partitions.
- This is a very time consuming activity and requires lots of diskettes (why
- buy 50+ disks only to once backup and restore your HD?).
- FIPS was written to remedy this problem. You can now split a partition
- without losing any data, provided there is enough free space for the new
- partition at the end of the old one.
-
-
- 2. Safety
-
- FIPS was specifically designed to provide a maximum of safety. On startup
- it checks the Partition Table, Boot Sector and FAT for any inconsistencies.
- If it finds anything suspicious, it will tell you so. If there are errors,
- FIPS will not proceed.
- You have the possibility to write backup copies of your root and bootsector
- to a floppy disk before proceeding. If something goes wrong, you may restore
- these with the program 'restorrb.exe' (see section 4).
- After you have entered the start cylinder for the new partition, FIPS will
- check if the new partition is completely empty by examining the FAT of the
- old one. If it is not, FIPS will stop.
- After having calculated the new Partition Table and Bootsector, FIPS will
- check them again, so that eventual bugs in the calculation may be detected.
- Only if everything is ok, FIPS will ask for permission to write the new
- Root and Bootsector.
-
-
- 3. Restrictions
-
- FIPS will only work with Hard Disk BIOSes that use interrupt 13h for low
- level harddisk access. I think this is true for practically all PCs.
-
- FIPS will only work on disks with a sector size of 512 bytes.
- It seems that DOS is prepared to deal with different sector sizes, but
- since they are not widely used, I decided not to support them.
-
- FIPS will not split partitions with 12 bit FATs (you would not want to split
- partitions with less than 10 MB, would you?).
-
- FIPS will only split DOS partitions. Partition Table and Bootsector must
- conform to the MSDOS 3.0+ conventions. This is marked by the system
- indicator byte in the partition table, it must have the value 4 (16 bit
- sector number) or 6 (32 bit sector number).
- It will especially *not* split Linux partitions.
-
- FIPS does not yet work on extended DOS partitions.
-
- FIPS will not work if you already have four partitions, since it needs one
- free partition entry.
-
- FIPS will not reduce the original partition to a size with less than 4085
- clusters, because this would imply rewriting the 16 bit FAT to a 12 bit FAT.
-
-
- 4. Before you start
-
- Run CHKDSK or (under DOS 6.2) SCANDISK on the partition you want to split.
- If you have Norton Disk Doctor or something similar, you may use it alter-
- natively. Make sure there remain no 'dead' clusters on the disk.
-
- Prepare a bootable floppy disk in drive A:. Under DOS this is usually done
- by giving the command 'sys a:' or 'format a:/s'. Under Windows NT or OS/2
- this may be different, if in doubt you should check your manual.
-
- Copy the FIPS files RESTORRB.EXE, FIPS.EXE and ERRORS.TXT to this disk.
-
- Test booting from the prepared floppy disk. Read you manual or ask a local
- guru if you can't boot from floppy disk or if you can not access your hard
- disk after booting (test this by giving the command 'dir c:', you should
- see your hard disk's root directory).
-
- When you start FIPS (later!), you will be given the opportunity to write
- backup copies of your root and boot sector to a file on drive A: called
- ROOTBOOT.00x (where x stands for a digit from 0 to 9). If anything goes wrong
- while using FIPS, you can restore the original configuration by booting from
- the floppy and running RESTORRB. Please note: if you use FIPS more than once
- (this is normally not necessary, but it may happen), more than one ROOTBOOT
- file is written to the floppy disk. RESTORRB lets you choose which configu-
- ration file to restore. The file RESTORRB.000 contains your original confi-
- guration. Try not to confuse the versions.
-
- But before starting FIPS you _must_ now defragment your Harddisk. All of the
- space that will be used for the new partition must be free. Be aware that the
- Windows Swapfile will not be moved by most defragmentation programs. You must
- uninstall it (in the 386enhanced part of the Windows Control Panel) and rein-
- stall it after using FIPS.
- If you use IMAGE or MIRROR, the last sector of the hard disk contains a
- hidden system file with a pointer to your mirror files. You _must_ delete this
- file before using FIPS (it will be recreated the next time you run mirror).
- Do 'attrib -r -s -h image.idx' or 'attrib -r -s -h mirorsav.fil' in the root
- directory, then delete the file.
- If FIPS does not offer as much disk space for creation of the new partition
- as you would expect it to have, this may mean that
-
- a. You still have too much data in the remaining partition. Consider making
- the new partition smaller or deleting some of the data.
-
- b. There are hidden files in the space of the new partition that have not
- been moved by the defragmentation program. Make sure to which program
- they belong. If a file is a swap file of some program (for example NDOS)
- it is possible that it can be safely deleted (and will be recreated
- automatically later when the need arises). See your manual for details.
-
- If the file belongs to some sort of copy protection, you must uninstall
- the program to which it belongs and reinstall it after repartitioning.
-
- I can't give you more aid in this - if you really can't figure out what
- to do, contact me directly.
-
- Attention! If you use a DOS version lower than DOS 5.0 do _not_ try to move
- DOS' hidden system files (ibmbio.com & ibmdos.com or something similar). You
- will end up with a harddisk that won't boot any more. Since these files are
- already in the first sectors of the partition, it is not necessary to move
- them.
-
- Be aware that the location of your DOS partitions in the partition table may
- change. If you use the new partition under DOS _and_ you have an extended
- partition and/or two drives, this means that the names of the partitions may
- change (D: may become E: for example). I have taken care that C: always re-
- mains C:, so that you will still be able to boot.
-
- For Linux users:
- This also means that the number of the DOS partition under Linux may change
- (/dev/hda3 may become /dev/hda1). Any existing Linux partitions will not
- change, so that you will have no trouble booting. You just need to edit your
- /etc/fstab file if you mount your DOS partition on bootup.
-
-
- 5. Use with Stacker/SuperStor/Doublespace
-
- I received reports that the following scheme works with Stacker, it may also
- work with the other programs. I can't confirm this, since I don't use any of
- these programs.
-
- a. Make sure that there is enough space on the compressed partition to be
- split.
- b. Use the Checkdisk program that comes with the compression software.
- c. Remove the Windows swapfile (if you have one).
- d. Decrease the size of the compressed volume with the utilities that come
- with the compression software.
- e. Boot without the compression device driver.
- f. Look at the directory listing to see how much space is available for the
- new partition.
- i. use FIPS as described below.
-
- If the compressed volume is fragmented, FIPS will not offer as much space
- for the new partition as is shown in the directory listing. I would not
- expect this to happen, normally the compressed volume should be one block
- of consecutive sectors. But if it happens to you, you should add the fol-
- lowing steps.
-
- g. Remove Hidden, Readonly and System attributes from compressed volume.
- h. Defragment the partition.
-
- j. Reset Hidden, Readonly and System attributes on compressed volume.
-
- Please let me know if this scheme works for you, so that I can include this
- info in later releases. In any case, use at your own risk.
-
-
- 6. Use with OS/2
-
- FIPS is known to have problems with OS/2, especially with the dual boot
- feature. This is partly due to the fact that OS/2 dual boot uses two copies
- of the boot sector - if only one copy is changed by FIPS, OS/2 will not
- work properly.
- But even when taking this into consideration, some people have reported
- strange error messages by OS/2. If you want to give FIPS a try, make sure
- to save the root and boot sector to floppy disk with FIPS before making
- any changes. FIPS _might_ work if you
-
- 1. Remove dual boot from the partition
- 2. Boot from a bootable DOS disk
- 3. Run FIPS (make sure to make FIPS save the root and boot sector to floppy)
- 4. Reboot, check if everything is ok under DOS
- 5. Boot from your OS/2 installation disk and reinstall dual boot
- 6. Boot to OS/2 and look if everything works as expected.
-
- If 5. does not work (OS/2 complains with 'hardware error' or something
- similar), use RESTORRB to undo the changes FIPS made, reboot again and
- reinstall dual boot.
-
- So far I did not find out what OS/2 complains about. Since I do not use
- OS/2, I have to rely on user reports. If you try FIPS with dual boot,
- I would like to hear about it. Any information is welcome, even if it
- is just "it worked" or "it did not work". If you have an idea what might
- be the problem or any technical information, please tell me about it.
-
- I don't have any reports about OS/2 boot manager - I don't know if FIPS
- will work with it. Again: if you want to try FIPS, make sure to save root
- and boot sector to floppy in case boot manager does not like FIPS.
-
-
- 7. Use with a multitasking OS
-
- You should not use FIPS in multitasking environments like OS/2, Desqview,
- Windows, Novell Task Manager or the Linux DOS Emulator. These systems might
- still write to the disk after FIPS has changed the hard disk structure,
- which may result in corrupting the disk. This is not necessarily so, I'd
- suppose that in most cases it would work nevertheless. But since safety is my
- first concern with FIPS, I would recommend booting from a DOS boot disk and
- then running FIPS, that should be safe.
- In version 1.0 I added some code by Dave McCaldon to detect Windows, Desq-
- view and Linux DOS emulator (thanks, Dave!). If FIPS incorrectly detects
- one of these, please let me know, so that I can correct it. OS/2 and Novell
- Task Manager are not yet detected.
-
-
- 8. Using FIPS
-
- If you have prepared a bootable floppy disk as described in section 4,
- boot from it now.
-
- You start FIPS by typing FIPS at the DOS prompt, followed by <ENTER>.
- You may exit from the program at any time by pressing <CTRL-C>.
-
- FIPS will first try to detect under which OS it is running. If it is
- Windows, Desqview or the Linux DOS emulator, it will complain and tell
- you to boot from a floppy disk. You can proceed nevertheless, but this
- is at your own risk (see section 7).
-
- Then FIPS will detect you hard disks, if you have more than one, it will
- ask you which one you want to work on.
- In previous releases, FIPS failed to detect the right number of hard disks
- with some BIOSes (esp. in Gateway Pentium machines). I hope I have corrected
- this. If FIPS fails to detect the correct number of disks, please let me
- know. In the meantime you may use the '-d' switch to select the drive
- by hand (see below).
-
- FIPS then reads the rootsector of the hard disk and display the partition
- table.
-
- Example:
-
- | | Start | | End | Start |Number of|
- Part.|bootable|Head Cyl. Sector|System|Head Cyl. Sector| Sector |Sectors | MB
- -----+--------+----------------+------+----------------+--------+---------+----
- 1 | yes | 0 148 1| 83h| 15 295 63| 149184| 149184| 72
- 2 | no | 1 0 1| 06h| 15 139 63| 63| 141057| 68
- 3 | no | 0 140 1| 06h| 15 147 63| 141120| 8064| 3
- 4 | no | 0 0 0| 00h| 0 0 0| 0| 0| 0
-
-
- If you don't know what to make of this, don't worry too much. You may just use
- the number of Megabytes to identify your partitions.
-
- The rootsector is then checked for errors.
-
- If you have more than one partition on the disk, you will be asked which one
- you want to split.
-
- The bootsector of the chosen partition is read and some information is dis-
- played.
-
- Example:
-
- Bytes per sector: 512
- Sectors per cluster: 8
- Reserved sectors: 1
- Number of FATs: 2
- Number of rootdirectory entries: 512
- Number of sectors (short): 0
- Media descriptor byte: f8h
- Sectors per FAT: 145
- Sectors per track: 63
- Drive heads: 16
- Hidden sectors: 63
- Number of sectors (long): 141057
- Physical drive number: 80h
- Signature: 29h
-
-
- FIPS checks if this information is consistent with the partition table and
- tries to detect other errors.
-
- It then verifies if the two copies of the FAT are identical, if they are not,
- FIPS will exit with an error message.
-
- If everything checks out ok, FIPS now looks for free space at the end of
- the partition. The new partition must have at least one cylinder, so if
- the last cylinder is not free, you have no chance of splitting the
- partition: FIPS will exit with an error message. Probably you forgot
- to remove a mirror or image file (see above).
-
- You must now enter on which cylinder the new partition should start.
- Use the cursor keys right/left to increase or decrease the cylinder
- count. The size of the remaining partition and the new partition are
- displayed in the process, so you will have no trouble choosing the
- right cylinder. With cursor up/down you can change the count in steps
- of 10. When ready, press enter to continue.
-
- FIPS will check again if the space for the new partition is empty -
- this is an additional security measure and should never show an error,
- since the free space is already determined before.
-
- After this, FIPS will calculate the changes to the rootsector, check the
- changes and display the new partition table. You may now choose to reedit the
- partition table (this will return you to the point where you select the par-
- tition) or to continue. If you type 'c', FIPS will calculate the changed
- bootsector, check it again and prompt you if you want to proceed. If you type
- 'y' then, FIPS will write the changes to the disk and exit.
-
-
- 9. After splitting the partition
-
- Your new partition will be recognized by DOS after your first reboot. Make
- sure to disable all programs that write to your disk in config.sys and
- autoexec.bat before rebooting. Your best bet is to rename these two files
- or to boot from floppy. You should especially disable MIRROR or IMAGE.
- After rebooting, use CHKDSK or Norton Disk Doctor to make sure your old (now
- smaller) partition is ok. If you don't find any errors, you may now reboot
- with your normal config.sys and autoexec.bat. Start some programs and make
- sure you can still read your data.
-
- If you want to use your new partition under DOS, you must format it. If you
- have multiple partitions, make sure to format the right one, the drive names
- may have changed!
- If you want to use the partition under Linux, you may now change the system
- indicator byte with Linux' fdisk, then use MKFS.
-
- If you want to split the new partition again in two smaller ones, you must
- first format it under DOS, otherwise FIPS will complain (btw. since the
- new partition does not yet contain any data, you could as well use fdisk
- to delete it and create two new ones).
-
-
- 10. Commandline Switches
-
- Here is the explanation of FIPS' commandline switches. If you prefer the DOS
- style, you may use '/' instead of '-' as the switch character. The switches
- may be arbitrarily combined. Type 'FIPS -help' to get a list of the switches.
- Here is a more detailed explanation:
-
- -t or -test : test mode (no writes to disk)
-
- This doesn't need much explanation.
-
- -d or -debug : debug mode
-
- In this mode, a complete transcript of your session along with some additio-
- nal information is written to the file FIPSINFO.DBG in the current directory.
- You can send this file to me in case of trouble (see below).
- This switch does not interfere with the -d<num> switch.
-
- -h or -help or -? : help page
-
- A short summary of the switches
-
- -d<num> : select drive <num>
-
- Preselect the drive number with this switch. Valid numbers are 128 to 255.
- This may also be used to override the automatic drive detection - if for any
- reason the drive is not found by FIPS, you may try this switch.
-
- -p<num> : select partition <num>
-
- Preselect the partition number (1-4). Only valid partitions are accepted.
-
- -c<num> : new start cylinder = <num>
-
- Preselect the new start cylinder - only valid cylinder numbers are accepted.
-
- -omb : override 'More than one bootable Partition'
-
- There are some bootprograms that do not complain about more than one bootable
- partition - they will just use the first one. If you have such a program in
- your rootsector and the PC boots normally, you may use this switch to skip
- the error message. I would recommend however to delete the wrong flags, if
- you have a suitable program.
-
- -obf : override 'Invalid bootable-flag'
-
- By modifying the bootable flag and the bootprogram it is theoretically pos-
- sible to boot from the second harddrive. If you happen to have such a confi-
- guration, use this switch to skip the error message.
-
- -ore : override 'Number of Rootdir entries must be multiple of 16'
-
- An invalid number of Rootdir entries is accepted by DOS. If you have no other
- means to correct the entry, you may use this switch to skip the error message.
-
- -olf : override 'FAT too large'
-
- Since the number of sectors per FAT is a 2 byte number, it is theoretically
- possible to have up to 65535 sectors per FAT. This is accepted by DOS, but a
- number greater than 256 is not useful, since the largest possible FAT has 256
- sectors.
-
- -osf : override 'FAT too small'
-
- If the number of clusters in the partition is larger than there are entries
- in the FAT, DOS uses only part of the partition. Something has gone *very*
- wrong with this partition, but all is not lost - use this switch and reduce
- the new partition to a size that can be properly managed.
-
- -omd : override 'Wrong Media Descriptor Byte in FAT/Bootsector'
-
- The media descriptor byte should be F8h for a harddisk, but other values like
- FCh are accepted by DOS (perhaps used for removable media ?), so you can
- override the error message with this switch.
-
-
- 11. Troubleshooting
-
- FIPS is still somewhat experimental, although it has been used by many
- people successfully and without serious problems.
- When in doubt I usually decided to stay safe and display error messages
- when encountering suspicious configurations. For some of the minor errors
- I added override switches (see section 10).
- If you can't resolve a problem yourself, or have a configuration not sup-
- ported by FIPS, or if you suspect a bug in FIPS, make a transcript of your
- session using the -d switch and send the file FIPSINFO.DBG along with a
- short comment to schaefer@rbg.informatik.th-darmstadt.de. Possibly your
- problem has already been solved.
-
-
- 12. Credits
-
- FIPS is based on the procedure described by Drew Eckhardt in Linux digest132.
- Most of what I know about Harddisk structures comes from the excellent german
- book 'Scheibenkleister II' by Claus Brod and Anton Stepper. It is for the
- Atari ST, but much of it applies to PCs also.
- Information on the Harddisk Interrupts was drawn from Ralf Brown's Interrupt
- List. Thanks to Hamish Coleman for some useful info and to Paul Smith for
- his good suggestions. Gunnar Hilmarsson suggested the procedure for stacked
- drives, and Miguel Alvarez helped me improve the partition ordering. Chetan
- Patil, Rand Phares and Eric Jung pointed me at bugs in the program and
- documentation. Stefan Andreasen provided important informations about OS/2.
- Keith Crews suggested some additions to the documentation concerning the
- preparation of the boot disk and new features of DOS 6.x. Dave McCaldon
- wrote the code for detecting the OS FIPS is running under.
- Thanks to all others who sent me feedback.
-
-
- Arno Schaefer
- schaefer@rbg.informatik.th-darmstadt.de
-